#ifndef _FOC_CORE_SL_SGSN_M4A1_H
#define _FOC_CORE_SL_SGSN_M4A1_H
//
#ifdef __cplusplus
extern "C" {
#endif
//
#include "PT32U303.h"
#include "GenTypeDef.h"
#include <stdio.h>
//
#include "MotorCtrl.h"
//
#if(MODULATION_PERCENT == 70)
#define MODULATION_MAX      22936
#define START_INDEX         31
static const uSHORT CircleLimitTable[(128 - START_INDEX)]=
{
    32257   ,
    31770   ,
    31304   ,
    30858   ,
    30431   ,
    30021   ,
    29627   ,
    29248   ,
    28883   ,
    28532   ,
    28193   ,
    27866   ,
    27550   ,
    27245   ,
    26950   ,
    26664   ,
    26386   ,
    26118   ,
    25857   ,
    25604   ,
    25359   ,
    25120   ,
    24888   ,
    24662   ,
    24442   ,
    24228   ,
    24020   ,
    23816   ,
    23618   ,
    23425   ,
    23237   ,
    23052   ,
    22873   ,
    22697   ,
    22525   ,
    22358   ,
    22193   ,
    22033   ,
    21876   ,
    21722   ,
    21571   ,
    21424   ,
    21279   ,
    21138   ,
    20999   ,
    20863   ,
    20729   ,
    20598   ,
    20469   ,
    20343   ,
    20219   ,
    20098   ,
    19978   ,
    19861   ,
    19746   ,
    19632   ,
    19521   ,
    19411   ,
    19304   ,
    19198   ,
    19093   ,
    18991   ,
    18890   ,
    18791   ,
    18693   ,
    18597   ,
    18502   ,
    18409   ,
    18317   ,
    18226   ,
    18137   ,
    18049   ,
    17962   ,
    17877   ,
    17792   ,
    17709   ,
    17627   ,
    17547   ,
    17467   ,
    17388   ,
    17311   ,
    17234   ,
    17159   ,
    17084   ,
    17011   ,
    16938   ,
    16866   ,
    16796   ,
    16726   ,
    16657   ,
    16588   ,
    16521   ,
    16454   ,
    16389   ,
    16324   ,
    16260   ,
    16196   ,
};
#elif(MODULATION_PERCENT == 71)
#define MODULATION_MAX      23264
#define START_INDEX         32
static const uSHORT CircleLimitTable[(128 - START_INDEX)]=
{
    32271   ,
    31796   ,
    31342   ,
    30907   ,
    30489   ,
    30088   ,
    29703   ,
    29332   ,
    28974   ,
    28629   ,
    28296   ,
    27975   ,
    27664   ,
    27363   ,
    27072   ,
    26790   ,
    26517   ,
    26252   ,
    25995   ,
    25745   ,
    25502   ,
    25266   ,
    25036   ,
    24813   ,
    24595   ,
    24383   ,
    24177   ,
    23975   ,
    23779   ,
    23587   ,
    23400   ,
    23217   ,
    23038   ,
    22864   ,
    22693   ,
    22527   ,
    22363   ,
    22204   ,
    22047   ,
    21894   ,
    21744   ,
    21597   ,
    21453   ,
    21312   ,
    21174   ,
    21038   ,
    20905   ,
    20774   ,
    20646   ,
    20520   ,
    20397   ,
    20275   ,
    20156   ,
    20039   ,
    19924   ,
    19811   ,
    19699   ,
    19590   ,
    19482   ,
    19376   ,
    19272   ,
    19170   ,
    19069   ,
    18970   ,
    18872   ,
    18775   ,
    18681   ,
    18587   ,
    18495   ,
    18405   ,
    18315   ,
    18227   ,
    18140   ,
    18055   ,
    17971   ,
    17887   ,
    17805   ,
    17724   ,
    17645   ,
    17566   ,
    17488   ,
    17411   ,
    17336   ,
    17261   ,
    17187   ,
    17114   ,
    17042   ,
    16971   ,
    16901   ,
    16832   ,
    16764   ,
    16696   ,
    16629   ,
    16563   ,
    16498   ,
    16434   ,
};
#elif(MODULATION_PERCENT == 72)
#define MODULATION_MAX      23592
#define START_INDEX         33
static const uSHORT CircleLimitTable[(128 - START_INDEX)]=
{
    32284   ,
    31822   ,
    31379   ,
    30954   ,
    30546   ,
    30154   ,
    29776   ,
    29412   ,
    29062   ,
    28723   ,
    28396   ,
    28080   ,
    27774   ,
    27478   ,
    27192   ,
    26914   ,
    26644   ,
    26383   ,
    26129   ,
    25882   ,
    25642   ,
    25408   ,
    25181   ,
    24960   ,
    24745   ,
    24535   ,
    24330   ,
    24130   ,
    23935   ,
    23745   ,
    23560   ,
    23378   ,
    23201   ,
    23028   ,
    22858   ,
    22692   ,
    22530   ,
    22371   ,
    22216   ,
    22063   ,
    21914   ,
    21768   ,
    21624   ,
    21484   ,
    21346   ,
    21211   ,
    21078   ,
    20948   ,
    20820   ,
    20695   ,
    20571   ,
    20450   ,
    20331   ,
    20214   ,
    20099   ,
    19986   ,
    19875   ,
    19766   ,
    19658   ,
    19553   ,
    19448   ,
    19346   ,
    19245   ,
    19146   ,
    19048   ,
    18952   ,
    18857   ,
    18764   ,
    18672   ,
    18581   ,
    18491   ,
    18403   ,
    18317   ,
    18231   ,
    18146   ,
    18063   ,
    17981   ,
    17900   ,
    17820   ,
    17741   ,
    17663   ,
    17586   ,
    17510   ,
    17436   ,
    17362   ,
    17289   ,
    17217   ,
    17145   ,
    17075   ,
    17006   ,
    16937   ,
    16869   ,
    16802   ,
    16736   ,
    16671   ,
};
#elif(MODULATION_PERCENT == 73)
#define MODULATION_MAX      23919
#define START_INDEX         34
static const uSHORT CircleLimitTable[(128 - START_INDEX)]=
{
    32297   ,
    31847   ,
    31414   ,
    31000   ,
    30601   ,
    30217   ,
    29847   ,
    29490   ,
    29146   ,
    28814   ,
    28493   ,
    28182   ,
    27881   ,
    27590   ,
    27308   ,
    27034   ,
    26768   ,
    26510   ,
    26259   ,
    26015   ,
    25778   ,
    25547   ,
    25323   ,
    25104   ,
    24891   ,
    24683   ,
    24480   ,
    24282   ,
    24089   ,
    23900   ,
    23716   ,
    23536   ,
    23360   ,
    23188   ,
    23019   ,
    22855   ,
    22693   ,
    22535   ,
    22381   ,
    22229   ,
    22081   ,
    21935   ,
    21792   ,
    21653   ,
    21515   ,
    21381   ,
    21248   ,
    21119   ,
    20991   ,
    20866   ,
    20743   ,
    20622   ,
    20503   ,
    20387   ,
    20272   ,
    20159   ,
    20048   ,
    19939   ,
    19832   ,
    19726   ,
    19622   ,
    19520   ,
    19419   ,
    19320   ,
    19222   ,
    19126   ,
    19031   ,
    18938   ,
    18846   ,
    18755   ,
    18665   ,
    18577   ,
    18490   ,
    18405   ,
    18320   ,
    18237   ,
    18154   ,
    18073   ,
    17993   ,
    17914   ,
    17836   ,
    17759   ,
    17683   ,
    17608   ,
    17534   ,
    17461   ,
    17389   ,
    17317   ,
    17247   ,
    17177   ,
    17108   ,
    17041   ,
    16973   ,
    16907   ,
};
#elif(MODULATION_PERCENT == 74)
#define MODULATION_MAX      24247
#define START_INDEX         35
static const uSHORT CircleLimitTable[(128 - START_INDEX)]=
{
    32309   ,
    31870   ,
    31449   ,
    31043   ,
    30653   ,
    30278   ,
    29915   ,
    29566   ,
    29228   ,
    28902   ,
    28586   ,
    28281   ,
    27985   ,
    27698   ,
    27420   ,
    27150   ,
    26888   ,
    26634   ,
    26386   ,
    26145   ,
    25911   ,
    25683   ,
    25461   ,
    25244   ,
    25033   ,
    24827   ,
    24626   ,
    24430   ,
    24239   ,
    24052   ,
    23869   ,
    23690   ,
    23516   ,
    23345   ,
    23177   ,
    23014   ,
    22853   ,
    22697   ,
    22543   ,
    22392   ,
    22244   ,
    22099   ,
    21957   ,
    21818   ,
    21681   ,
    21547   ,
    21416   ,
    21286   ,
    21159   ,
    21034   ,
    20912   ,
    20791   ,
    20673   ,
    20557   ,
    20442   ,
    20330   ,
    20219   ,
    20110   ,
    20003   ,
    19897   ,
    19793   ,
    19691   ,
    19590   ,
    19491   ,
    19394   ,
    19297   ,
    19203   ,
    19109   ,
    19017   ,
    18926   ,
    18837   ,
    18749   ,
    18662   ,
    18576   ,
    18491   ,
    18408   ,
    18326   ,
    18244   ,
    18164   ,
    18085   ,
    18007   ,
    17930   ,
    17854   ,
    17779   ,
    17705   ,
    17631   ,
    17559   ,
    17487   ,
    17417   ,
    17347   ,
    17278   ,
    17210   ,
    17143   ,
};
#elif(MODULATION_PERCENT == 75)
#define MODULATION_MAX      24575
#define START_INDEX         35
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32321   ,
    31893   ,
    31482   ,
    31086   ,
    30704   ,
    30336   ,
    29982   ,
    29639   ,
    29308   ,
    28987   ,
    28677   ,
    28377   ,
    28086   ,
    27804   ,
    27530   ,
    27264   ,
    27005   ,
    26754   ,
    26510   ,
    26272   ,
    26041   ,
    25815   ,
    25595   ,
    25381   ,
    25172   ,
    24968   ,
    24770   ,
    24575   ,
    24385   ,
    24200   ,
    24019   ,
    23841   ,
    23668   ,
    23498   ,
    23332   ,
    23170   ,
    23011   ,
    22855   ,
    22702   ,
    22552   ,
    22405   ,
    22261   ,
    22119   ,
    21981   ,
    21845   ,
    21711   ,
    21580   ,
    21451   ,
    21324   ,
    21200   ,
    21078   ,
    20958   ,
    20840   ,
    20724   ,
    20609   ,
    20497   ,
    20387   ,
    20278   ,
    20171   ,
    20066   ,
    19962   ,
    19860   ,
    19759   ,
    19660   ,
    19563   ,
    19466   ,
    19372   ,
    19278   ,
    19186   ,
    19096   ,
    19006   ,
    18918   ,
    18831   ,
    18745   ,
    18661   ,
    18577   ,
    18495   ,
    18413   ,
    18333   ,
    18254   ,
    18176   ,
    18099   ,
    18022   ,
    17947   ,
    17873   ,
    17800   ,
    17727   ,
    17655   ,
    17585   ,
    17515   ,
    17446   ,
    17377   ,
    17310   ,
};
#elif(MODULATION_PERCENT == 76)
#define MODULATION_MAX      24902
#define START_INDEX         36
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32333   ,
    31915   ,
    31513   ,
    31126   ,
    30753   ,
    30393   ,
    30046   ,
    29710   ,
    29385   ,
    29070   ,
    28765   ,
    28470   ,
    28184   ,
    27906   ,
    27636   ,
    27374   ,
    27119   ,
    26871   ,
    26630   ,
    26396   ,
    26167   ,
    25944   ,
    25727   ,
    25515   ,
    25308   ,
    25106   ,
    24909   ,
    24717   ,
    24529   ,
    24345   ,
    24165   ,
    23990   ,
    23817   ,
    23649   ,
    23484   ,
    23323   ,
    23165   ,
    23009   ,
    22858   ,
    22709   ,
    22562   ,
    22419   ,
    22279   ,
    22141   ,
    22005   ,
    21872   ,
    21741   ,
    21613   ,
    21487   ,
    21363   ,
    21241   ,
    21122   ,
    21004   ,
    20888   ,
    20774   ,
    20662   ,
    20552   ,
    20444   ,
    20337   ,
    20232   ,
    20128   ,
    20026   ,
    19926   ,
    19827   ,
    19729   ,
    19633   ,
    19539   ,
    19445   ,
    19353   ,
    19263   ,
    19173   ,
    19085   ,
    18998   ,
    18912   ,
    18828   ,
    18744   ,
    18662   ,
    18580   ,
    18500   ,
    18421   ,
    18343   ,
    18265   ,
    18189   ,
    18114   ,
    18039   ,
    17966   ,
    17893   ,
    17821   ,
    17751   ,
    17681   ,
    17611   ,
    17543   ,
};
#elif(MODULATION_PERCENT == 77)
#define MODULATION_MAX      25230
#define START_INDEX         37
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32344   ,
    31936   ,
    31544   ,
    31166   ,
    30801   ,
    30448   ,
    30107   ,
    29778   ,
    29459   ,
    29150   ,
    28851   ,
    28561   ,
    28279   ,
    28005   ,
    27740   ,
    27481   ,
    27230   ,
    26986   ,
    26748   ,
    26516   ,
    26290   ,
    26070   ,
    25855   ,
    25646   ,
    25441   ,
    25241   ,
    25046   ,
    24856   ,
    24669   ,
    24487   ,
    24309   ,
    24134   ,
    23964   ,
    23797   ,
    23633   ,
    23473   ,
    23315   ,
    23161   ,
    23010   ,
    22862   ,
    22717   ,
    22575   ,
    22435   ,
    22297   ,
    22163   ,
    22030   ,
    21900   ,
    21772   ,
    21647   ,
    21523   ,
    21402   ,
    21283   ,
    21165   ,
    21050   ,
    20936   ,
    20825   ,
    20715   ,
    20607   ,
    20500   ,
    20395   ,
    20292   ,
    20190   ,
    20090   ,
    19991   ,
    19894   ,
    19798   ,
    19703   ,
    19610   ,
    19518   ,
    19427   ,
    19338   ,
    19250   ,
    19163   ,
    19077   ,
    18993   ,
    18909   ,
    18827   ,
    18745   ,
    18665   ,
    18586   ,
    18507   ,
    18430   ,
    18354   ,
    18278   ,
    18204   ,
    18130   ,
    18057   ,
    17986   ,
    17915   ,
    17845   ,
    17775   ,
};
#elif(MODULATION_PERCENT == 78)
#define MODULATION_MAX      25558
#define START_INDEX         38
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32354   ,
    31957   ,
    31573   ,
    31203   ,
    30846   ,
    30501   ,
    30167   ,
    29844   ,
    29531   ,
    29228   ,
    28934   ,
    28649   ,
    28371   ,
    28102   ,
    27840   ,
    27586   ,
    27338   ,
    27097   ,
    26862   ,
    26633   ,
    26410   ,
    26193   ,
    25980   ,
    25773   ,
    25571   ,
    25373   ,
    25180   ,
    24991   ,
    24807   ,
    24626   ,
    24449   ,
    24276   ,
    24107   ,
    23941   ,
    23779   ,
    23620   ,
    23464   ,
    23311   ,
    23160   ,
    23013   ,
    22869   ,
    22727   ,
    22588   ,
    22452   ,
    22317   ,
    22186   ,
    22056   ,
    21929   ,
    21804   ,
    21681   ,
    21560   ,
    21441   ,
    21324   ,
    21209   ,
    21096   ,
    20985   ,
    20875   ,
    20767   ,
    20661   ,
    20556   ,
    20453   ,
    20351   ,
    20251   ,
    20153   ,
    20056   ,
    19960   ,
    19865   ,
    19772   ,
    19680   ,
    19590   ,
    19501   ,
    19413   ,
    19326   ,
    19240   ,
    19155   ,
    19072   ,
    18989   ,
    18908   ,
    18828   ,
    18748   ,
    18670   ,
    18593   ,
    18516   ,
    18441   ,
    18366   ,
    18293   ,
    18220   ,
    18148   ,
    18077   ,
    18007   ,
};
#elif(MODULATION_PERCENT == 79)
#define MODULATION_MAX      25885
#define START_INDEX         39
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32364   ,
    31976   ,
    31602   ,
    31240   ,
    30891   ,
    30553   ,
    30225   ,
    29908   ,
    29601   ,
    29303   ,
    29014   ,
    28734   ,
    28461   ,
    28196   ,
    27938   ,
    27687   ,
    27443   ,
    27205   ,
    26974   ,
    26748   ,
    26527   ,
    26312   ,
    26103   ,
    25898   ,
    25697   ,
    25502   ,
    25311   ,
    25124   ,
    24941   ,
    24762   ,
    24587   ,
    24415   ,
    24247   ,
    24083   ,
    23922   ,
    23764   ,
    23609   ,
    23457   ,
    23308   ,
    23161   ,
    23018   ,
    22877   ,
    22739   ,
    22603   ,
    22469   ,
    22338   ,
    22209   ,
    22083   ,
    21958   ,
    21836   ,
    21716   ,
    21597   ,
    21481   ,
    21366   ,
    21253   ,
    21142   ,
    21033   ,
    20925   ,
    20819   ,
    20715   ,
    20612   ,
    20511   ,
    20411   ,
    20312   ,
    20215   ,
    20120   ,
    20025   ,
    19932   ,
    19841   ,
    19750   ,
    19661   ,
    19573   ,
    19486   ,
    19400   ,
    19316   ,
    19232   ,
    19150   ,
    19069   ,
    18988   ,
    18909   ,
    18831   ,
    18753   ,
    18677   ,
    18601   ,
    18527   ,
    18453   ,
    18380   ,
    18308   ,
    18237   ,
};
#elif(MODULATION_PERCENT == 80)
#define MODULATION_MAX      26213
#define START_INDEX         40
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32374   ,
    31995   ,
    31629   ,
    31275   ,
    30933   ,
    30602   ,
    30281   ,
    29971   ,
    29669   ,
    29377   ,
    29093   ,
    28817   ,
    28548   ,
    28287   ,
    28034   ,
    27786   ,
    27546   ,
    27311   ,
    27082   ,
    26859   ,
    26642   ,
    26429   ,
    26222   ,
    26019   ,
    25821   ,
    25628   ,
    25438   ,
    25253   ,
    25072   ,
    24895   ,
    24721   ,
    24551   ,
    24385   ,
    24222   ,
    24062   ,
    23905   ,
    23751   ,
    23600   ,
    23452   ,
    23307   ,
    23164   ,
    23024   ,
    22887   ,
    22751   ,
    22619   ,
    22488   ,
    22360   ,
    22234   ,
    22110   ,
    21988   ,
    21868   ,
    21750   ,
    21634   ,
    21520   ,
    21408   ,
    21297   ,
    21188   ,
    21081   ,
    20975   ,
    20871   ,
    20768   ,
    20667   ,
    20568   ,
    20469   ,
    20373   ,
    20277   ,
    20183   ,
    20090   ,
    19999   ,
    19908   ,
    19819   ,
    19731   ,
    19644   ,
    19559   ,
    19474   ,
    19391   ,
    19309   ,
    19227   ,
    19147   ,
    19068   ,
    18989   ,
    18912   ,
    18835   ,
    18760   ,
    18685   ,
    18612   ,
    18539   ,
    18467   ,
};
#elif(MODULATION_PERCENT == 81)
#define MODULATION_MAX      26541
#define START_INDEX         41
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32384   ,
    32013   ,
    31656   ,
    31310   ,
    30975   ,
    30650   ,
    30336   ,
    30031   ,
    29735   ,
    29448   ,
    29168   ,
    28897   ,
    28633   ,
    28376   ,
    28126   ,
    27883   ,
    27645   ,
    27414   ,
    27188   ,
    26968   ,
    26753   ,
    26543   ,
    26338   ,
    26138   ,
    25942   ,
    25751   ,
    25563   ,
    25380   ,
    25201   ,
    25025   ,
    24853   ,
    24684   ,
    24519   ,
    24357   ,
    24199   ,
    24043   ,
    23890   ,
    23741   ,
    23594   ,
    23449   ,
    23308   ,
    23168   ,
    23032   ,
    22897   ,
    22765   ,
    22636   ,
    22508   ,
    22383   ,
    22259   ,
    22138   ,
    22019   ,
    21901   ,
    21786   ,
    21672   ,
    21560   ,
    21450   ,
    21341   ,
    21234   ,
    21129   ,
    21025   ,
    20922   ,
    20822   ,
    20722   ,
    20624   ,
    20528   ,
    20432   ,
    20338   ,
    20246   ,
    20154   ,
    20064   ,
    19975   ,
    19887   ,
    19801   ,
    19715   ,
    19631   ,
    19547   ,
    19465   ,
    19384   ,
    19304   ,
    19224   ,
    19146   ,
    19069   ,
    18992   ,
    18917   ,
    18842   ,
    18768   ,
    18695   ,
};
#elif(MODULATION_PERCENT == 82)
#define MODULATION_MAX      26868
#define START_INDEX         43
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32393   ,
    32031   ,
    31681   ,
    31343   ,
    31015   ,
    30697   ,
    30389   ,
    30089   ,
    29799   ,
    29517   ,
    29242   ,
    28975   ,
    28715   ,
    28463   ,
    28216   ,
    27976   ,
    27742   ,
    27514   ,
    27291   ,
    27074   ,
    26862   ,
    26655   ,
    26452   ,
    26254   ,
    26060   ,
    25871   ,
    25685   ,
    25504   ,
    25326   ,
    25152   ,
    24982   ,
    24815   ,
    24651   ,
    24491   ,
    24333   ,
    24179   ,
    24027   ,
    23879   ,
    23733   ,
    23589   ,
    23448   ,
    23310   ,
    23174   ,
    23041   ,
    22910   ,
    22781   ,
    22654   ,
    22529   ,
    22406   ,
    22285   ,
    22167   ,
    22050   ,
    21935   ,
    21821   ,
    21710   ,
    21600   ,
    21492   ,
    21385   ,
    21280   ,
    21176   ,
    21074   ,
    20974   ,
    20875   ,
    20777   ,
    20681   ,
    20585   ,
    20492   ,
    20399   ,
    20308   ,
    20218   ,
    20129   ,
    20041   ,
    19955   ,
    19869   ,
    19785   ,
    19702   ,
    19620   ,
    19538   ,
    19458   ,
    19379   ,
    19301   ,
    19223   ,
    19147   ,
    19071   ,
    18997   ,
};
#elif(MODULATION_PERCENT == 83)
#define MODULATION_MAX      27196
#define START_INDEX         44
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32402   ,
    32048   ,
    31706   ,
    31375   ,
    31053   ,
    30742   ,
    30440   ,
    30146   ,
    29861   ,
    29583   ,
    29314   ,
    29051   ,
    28796   ,
    28547   ,
    28304   ,
    28068   ,
    27837   ,
    27612   ,
    27392   ,
    27178   ,
    26968   ,
    26763   ,
    26563   ,
    26367   ,
    26176   ,
    25988   ,
    25805   ,
    25625   ,
    25449   ,
    25277   ,
    25108   ,
    24943   ,
    24780   ,
    24621   ,
    24465   ,
    24312   ,
    24161   ,
    24014   ,
    23869   ,
    23726   ,
    23587   ,
    23449   ,
    23314   ,
    23182   ,
    23051   ,
    22923   ,
    22797   ,
    22673   ,
    22550   ,
    22430   ,
    22312   ,
    22196   ,
    22081   ,
    21968   ,
    21857   ,
    21748   ,
    21640   ,
    21533   ,
    21429   ,
    21326   ,
    21224   ,
    21124   ,
    21025   ,
    20927   ,
    20831   ,
    20736   ,
    20643   ,
    20550   ,
    20459   ,
    20370   ,
    20281   ,
    20193   ,
    20107   ,
    20022   ,
    19937   ,
    19854   ,
    19772   ,
    19691   ,
    19611   ,
    19532   ,
    19453   ,
    19376   ,
    19300   ,
    19224   ,
};
#elif(MODULATION_PERCENT == 84)
#define MODULATION_MAX      27524
#define START_INDEX         45
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32410   ,
    32065   ,
    31730   ,
    31406   ,
    31091   ,
    30786   ,
    30489   ,
    30201   ,
    29921   ,
    29648   ,
    29383   ,
    29125   ,
    28874   ,
    28628   ,
    28390   ,
    28156   ,
    27929   ,
    27707   ,
    27490   ,
    27279   ,
    27072   ,
    26869   ,
    26671   ,
    26478   ,
    26289   ,
    26103   ,
    25922   ,
    25744   ,
    25570   ,
    25399   ,
    25232   ,
    25068   ,
    24907   ,
    24749   ,
    24594   ,
    24442   ,
    24293   ,
    24146   ,
    24003   ,
    23861   ,
    23722   ,
    23586   ,
    23452   ,
    23320   ,
    23190   ,
    23063   ,
    22937   ,
    22814   ,
    22692   ,
    22573   ,
    22455   ,
    22339   ,
    22225   ,
    22113   ,
    22002   ,
    21893   ,
    21786   ,
    21680   ,
    21575   ,
    21473   ,
    21371   ,
    21271   ,
    21173   ,
    21075   ,
    20980   ,
    20885   ,
    20792   ,
    20700   ,
    20609   ,
    20519   ,
    20431   ,
    20343   ,
    20257   ,
    20172   ,
    20088   ,
    20005   ,
    19923   ,
    19841   ,
    19761   ,
    19682   ,
    19604   ,
    19527   ,
    19451   ,
};
#elif(MODULATION_PERCENT == 85)
#define MODULATION_MAX      27851
#define START_INDEX         46
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32418   ,
    32081   ,
    31753   ,
    31436   ,
    31127   ,
    30828   ,
    30537   ,
    30254   ,
    29979   ,
    29711   ,
    29451   ,
    29197   ,
    28949   ,
    28708   ,
    28473   ,
    28243   ,
    28019   ,
    27800   ,
    27586   ,
    27377   ,
    27173   ,
    26973   ,
    26777   ,
    26586   ,
    26399   ,
    26215   ,
    26036   ,
    25860   ,
    25687   ,
    25518   ,
    25353   ,
    25190   ,
    25031   ,
    24874   ,
    24721   ,
    24570   ,
    24422   ,
    24277   ,
    24134   ,
    23993   ,
    23855   ,
    23720   ,
    23587   ,
    23456   ,
    23327   ,
    23200   ,
    23075   ,
    22952   ,
    22832   ,
    22713   ,
    22596   ,
    22480   ,
    22367   ,
    22255   ,
    22145   ,
    22036   ,
    21929   ,
    21824   ,
    21720   ,
    21617   ,
    21516   ,
    21417   ,
    21318   ,
    21221   ,
    21126   ,
    21032   ,
    20939   ,
    20847   ,
    20756   ,
    20667   ,
    20578   ,
    20491   ,
    20405   ,
    20320   ,
    20236   ,
    20153   ,
    20071   ,
    19990   ,
    19910   ,
    19831   ,
    19753   ,
    19676   ,
};
#elif (MODULATION_PERCENT == 86)
#define MODULATION_MAX      28179
#define START_INDEX         47
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32426   ,
    32096   ,
    31776   ,
    31465   ,
    31162   ,
    30869   ,
    30584   ,
    30306   ,
    30036   ,
    29773   ,
    29516   ,
    29267   ,
    29023   ,
    28785   ,
    28554   ,
    28327   ,
    28106   ,
    27890   ,
    27679   ,
    27473   ,
    27271   ,
    27074   ,
    26881   ,
    26692   ,
    26507   ,
    26325   ,
    26148   ,
    25973   ,
    25803   ,
    25635   ,
    25471   ,
    25310   ,
    25152   ,
    24997   ,
    24845   ,
    24695   ,
    24548   ,
    24404   ,
    24262   ,
    24123   ,
    23986   ,
    23852   ,
    23719   ,
    23589   ,
    23461   ,
    23335   ,
    23211   ,
    23089   ,
    22969   ,
    22850   ,
    22734   ,
    22619   ,
    22506   ,
    22395   ,
    22285   ,
    22177   ,
    22070   ,
    21965   ,
    21862   ,
    21760   ,
    21659   ,
    21560   ,
    21462   ,
    21365   ,
    21270   ,
    21176   ,
    21083   ,
    20992   ,
    20901   ,
    20812   ,
    20724   ,
    20637   ,
    20551   ,
    20466   ,
    20382   ,
    20299   ,
    20218   ,
    20137   ,
    20057   ,
    19978   ,
    19900   ,
};
#elif (MODULATION_PERCENT == 87)
#define MODULATION_MAX      28507
#define START_INDEX         48
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32434   ,
    32111   ,
    31797   ,
    31493   ,
    31197   ,
    30909   ,
    30629   ,
    30356   ,
    30091   ,
    29832   ,
    29580   ,
    29334   ,
    29095   ,
    28861   ,
    28632   ,
    28409   ,
    28192   ,
    27979   ,
    27770   ,
    27567   ,
    27368   ,
    27173   ,
    26982   ,
    26795   ,
    26612   ,
    26432   ,
    26257   ,
    26084   ,
    25915   ,
    25750   ,
    25587   ,
    25428   ,
    25271   ,
    25117   ,
    24966   ,
    24818   ,
    24672   ,
    24529   ,
    24389   ,
    24250   ,
    24114   ,
    23981   ,
    23849   ,
    23720   ,
    23593   ,
    23467   ,
    23344   ,
    23223   ,
    23103   ,
    22986   ,
    22870   ,
    22756   ,
    22643   ,
    22532   ,
    22423   ,
    22316   ,
    22210   ,
    22105   ,
    22002   ,
    21900   ,
    21800   ,
    21701   ,
    21603   ,
    21507   ,
    21412   ,
    21318   ,
    21226   ,
    21134   ,
    21044   ,
    20955   ,
    20867   ,
    20781   ,
    20695   ,
    20610   ,
    20527   ,
    20444   ,
    20362   ,
    20282   ,
    20202   ,
    20123   ,
};
#elif (MODULATION_PERCENT == 88)
#define MODULATION_MAX      28834
#define START_INDEX         49
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32441   ,
    32125   ,
    31818   ,
    31520   ,
    31230   ,
    30947   ,
    30672   ,
    30405   ,
    30144   ,
    29890   ,
    29642   ,
    29400   ,
    29165   ,
    28934   ,
    28709   ,
    28489   ,
    28275   ,
    28065   ,
    27859   ,
    27658   ,
    27462   ,
    27269   ,
    27080   ,
    26896   ,
    26715   ,
    26537   ,
    26364   ,
    26193   ,
    26026   ,
    25862   ,
    25701   ,
    25543   ,
    25388   ,
    25235   ,
    25085   ,
    24938   ,
    24794   ,
    24652   ,
    24512   ,
    24375   ,
    24240   ,
    24108   ,
    23977   ,
    23848   ,
    23722   ,
    23598   ,
    23475   ,
    23354   ,
    23236   ,
    23119   ,
    23003   ,
    22890   ,
    22778   ,
    22668   ,
    22559   ,
    22452   ,
    22346   ,
    22242   ,
    22140   ,
    22038   ,
    21939   ,
    21840   ,
    21743   ,
    21647   ,
    21552   ,
    21459   ,
    21366   ,
    21275   ,
    21185   ,
    21097   ,
    21009   ,
    20922   ,
    20837   ,
    20752   ,
    20669   ,
    20586   ,
    20505   ,
    20424   ,
    20345   ,
};
#elif (MODULATION_PERCENT == 89)
#define MODULATION_MAX      29162
#define START_INDEX         50
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32449   ,
    32139   ,
    31838   ,
    31546   ,
    31262   ,
    30985   ,
    30715   ,
    30452   ,
    30196   ,
    29946   ,
    29703   ,
    29465   ,
    29233   ,
    29006   ,
    28784   ,
    28567   ,
    28356   ,
    28149   ,
    27946   ,
    27748   ,
    27553   ,
    27363   ,
    27177   ,
    26994   ,
    26815   ,
    26640   ,
    26468   ,
    26299   ,
    26134   ,
    25971   ,
    25812   ,
    25655   ,
    25502   ,
    25351   ,
    25202   ,
    25057   ,
    24913   ,
    24772   ,
    24634   ,
    24498   ,
    24364   ,
    24232   ,
    24102   ,
    23975   ,
    23849   ,
    23726   ,
    23604   ,
    23484   ,
    23366   ,
    23250   ,
    23135   ,
    23022   ,
    22911   ,
    22801   ,
    22693   ,
    22586   ,
    22481   ,
    22378   ,
    22275   ,
    22175   ,
    22075   ,
    21977   ,
    21880   ,
    21784   ,
    21690   ,
    21597   ,
    21505   ,
    21414   ,
    21325   ,
    21236   ,
    21149   ,
    21062   ,
    20977   ,
    20893   ,
    20809   ,
    20727   ,
    20646   ,
    20565   ,
};
#elif (MODULATION_PERCENT == 90)
#define MODULATION_MAX      29490
#define START_INDEX         51
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32455   ,
    32153   ,
    31858   ,
    31572   ,
    31293   ,
    31021   ,
    30756   ,
    30498   ,
    30246   ,
    30001   ,
    29761   ,
    29527   ,
    29299   ,
    29075   ,
    28857   ,
    28644   ,
    28435   ,
    28230   ,
    28030   ,
    27835   ,
    27643   ,
    27455   ,
    27271   ,
    27091   ,
    26914   ,
    26740   ,
    26570   ,
    26403   ,
    26240   ,
    26079   ,
    25921   ,
    25766   ,
    25613   ,
    25464   ,
    25317   ,
    25172   ,
    25030   ,
    24891   ,
    24753   ,
    24618   ,
    24485   ,
    24354   ,
    24226   ,
    24099   ,
    23974   ,
    23851   ,
    23730   ,
    23611   ,
    23494   ,
    23378   ,
    23264   ,
    23152   ,
    23041   ,
    22932   ,
    22825   ,
    22718   ,
    22614   ,
    22511   ,
    22409   ,
    22309   ,
    22209   ,
    22112   ,
    22015   ,
    21920   ,
    21826   ,
    21733   ,
    21642   ,
    21551   ,
    21462   ,
    21373   ,
    21286   ,
    21200   ,
    21115   ,
    21031   ,
    20948   ,
    20866   ,
    20785   ,
};
#elif (MODULATION_PERCENT == 91)
#define MODULATION_MAX      29817
#define START_INDEX         52
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32462   ,
    32166   ,
    31877   ,
    31596   ,
    31323   ,
    31056   ,
    30796   ,
    30543   ,
    30295   ,
    30054   ,
    29818   ,
    29588   ,
    29363   ,
    29143   ,
    28928   ,
    28718   ,
    28512   ,
    28310   ,
    28113   ,
    27920   ,
    27730   ,
    27545   ,
    27363   ,
    27185   ,
    27010   ,
    26839   ,
    26670   ,
    26505   ,
    26343   ,
    26184   ,
    26028   ,
    25874   ,
    25723   ,
    25575   ,
    25429   ,
    25286   ,
    25145   ,
    25006   ,
    24870   ,
    24736   ,
    24604   ,
    24474   ,
    24346   ,
    24221   ,
    24097   ,
    23975   ,
    23855   ,
    23736   ,
    23620   ,
    23505   ,
    23391   ,
    23280   ,
    23170   ,
    23061   ,
    22954   ,
    22849   ,
    22744   ,
    22642   ,
    22540   ,
    22440   ,
    22342   ,
    22244   ,
    22148   ,
    22054   ,
    21960   ,
    21867   ,
    21776   ,
    21686   ,
    21597   ,
    21509   ,
    21422   ,
    21336   ,
    21251   ,
    21167   ,
    21085   ,
    21003   ,
};
#elif (MODULATION_PERCENT == 92)
#define MODULATION_MAX      30145
#define START_INDEX         54
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32469   ,
    32178   ,
    31896   ,
    31620   ,
    31352   ,
    31090   ,
    30835   ,
    30586   ,
    30343   ,
    30106   ,
    29874   ,
    29647   ,
    29426   ,
    29209   ,
    28997   ,
    28790   ,
    28587   ,
    28388   ,
    28194   ,
    28003   ,
    27816   ,
    27633   ,
    27453   ,
    27277   ,
    27104   ,
    26935   ,
    26768   ,
    26605   ,
    26444   ,
    26287   ,
    26132   ,
    25980   ,
    25830   ,
    25684   ,
    25539   ,
    25397   ,
    25257   ,
    25120   ,
    24985   ,
    24852   ,
    24721   ,
    24592   ,
    24465   ,
    24340   ,
    24217   ,
    24096   ,
    23977   ,
    23859   ,
    23743   ,
    23629   ,
    23516   ,
    23405   ,
    23296   ,
    23188   ,
    23081   ,
    22976   ,
    22873   ,
    22771   ,
    22670   ,
    22570   ,
    22472   ,
    22375   ,
    22280   ,
    22185   ,
    22092   ,
    22000   ,
    21909   ,
    21819   ,
    21730   ,
    21642   ,
    21556   ,
    21470   ,
    21386   ,
    21302   ,
};
#elif (MODULATION_PERCENT == 93)
#define MODULATION_MAX      30473
#define START_INDEX         55
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32475   ,
    32191   ,
    31914   ,
    31644   ,
    31380   ,
    31124   ,
    30873   ,
    30628   ,
    30389   ,
    30156   ,
    29928   ,
    29705   ,
    29487   ,
    29274   ,
    29065   ,
    28860   ,
    28660   ,
    28464   ,
    28272   ,
    28084   ,
    27899   ,
    27718   ,
    27541   ,
    27367   ,
    27196   ,
    27028   ,
    26864   ,
    26702   ,
    26543   ,
    26388   ,
    26234   ,
    26084   ,
    25936   ,
    25790   ,
    25647   ,
    25506   ,
    25368   ,
    25232   ,
    25097   ,
    24966   ,
    24836   ,
    24708   ,
    24582   ,
    24458   ,
    24336   ,
    24215   ,
    24097   ,
    23980   ,
    23865   ,
    23751   ,
    23639   ,
    23529   ,
    23420   ,
    23313   ,
    23207   ,
    23102   ,
    22999   ,
    22898   ,
    22797   ,
    22698   ,
    22601   ,
    22504   ,
    22409   ,
    22315   ,
    22222   ,
    22130   ,
    22039   ,
    21950   ,
    21862   ,
    21774   ,
    21688   ,
    21602   ,
    21518   ,
};
#elif (MODULATION_PERCENT == 94)
#define MODULATION_MAX      30800
#define START_INDEX         56
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32481   ,
    32202   ,
    31931   ,
    31666   ,
    31408   ,
    31156   ,
    30910   ,
    30669   ,
    30435   ,
    30205   ,
    29981   ,
    29761   ,
    29546   ,
    29336   ,
    29131   ,
    28929   ,
    28732   ,
    28538   ,
    28349   ,
    28163   ,
    27981   ,
    27802   ,
    27627   ,
    27455   ,
    27286   ,
    27120   ,
    26958   ,
    26798   ,
    26641   ,
    26486   ,
    26335   ,
    26185   ,
    26039   ,
    25895   ,
    25753   ,
    25613   ,
    25476   ,
    25341   ,
    25208   ,
    25077   ,
    24948   ,
    24821   ,
    24696   ,
    24573   ,
    24452   ,
    24332   ,
    24215   ,
    24099   ,
    23984   ,
    23871   ,
    23760   ,
    23650   ,
    23542   ,
    23436   ,
    23330   ,
    23226   ,
    23124   ,
    23023   ,
    22923   ,
    22824   ,
    22727   ,
    22631   ,
    22536   ,
    22442   ,
    22350   ,
    22259   ,
    22168   ,
    22079   ,
    21991   ,
    21904   ,
    21818   ,
    21733   ,
};
#elif (MODULATION_PERCENT == 95)
#define MODULATION_MAX      31128
#define START_INDEX         57
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32487   ,
    32214   ,
    31948   ,
    31688   ,
    31435   ,
    31187   ,
    30945   ,
    30709   ,
    30478   ,
    30253   ,
    30032   ,
    29816   ,
    29604   ,
    29397   ,
    29195   ,
    28996   ,
    28802   ,
    28611   ,
    28424   ,
    28240   ,
    28061   ,
    27884   ,
    27711   ,
    27541   ,
    27374   ,
    27210   ,
    27049   ,
    26891   ,
    26736   ,
    26583   ,
    26433   ,
    26285   ,
    26140   ,
    25997   ,
    25857   ,
    25718   ,
    25582   ,
    25448   ,
    25316   ,
    25187   ,
    25059   ,
    24933   ,
    24809   ,
    24687   ,
    24566   ,
    24448   ,
    24331   ,
    24215   ,
    24102   ,
    23990   ,
    23879   ,
    23770   ,
    23662   ,
    23556   ,
    23452   ,
    23348   ,
    23246   ,
    23146   ,
    23046   ,
    22948   ,
    22852   ,
    22756   ,
    22662   ,
    22568   ,
    22476   ,
    22385   ,
    22295   ,
    22206   ,
    22119   ,
    22032   ,
    21946   ,
};
#elif (MODULATION_PERCENT == 96)
#define MODULATION_MAX      31456
#define START_INDEX         58
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32493   ,
    32225   ,
    31964   ,
    31709   ,
    31461   ,
    31218   ,
    30980   ,
    30748   ,
    30521   ,
    30299   ,
    30082   ,
    29869   ,
    29661   ,
    29457   ,
    29257   ,
    29062   ,
    28870   ,
    28682   ,
    28497   ,
    28316   ,
    28138   ,
    27964   ,
    27793   ,
    27625   ,
    27460   ,
    27298   ,
    27139   ,
    26983   ,
    26829   ,
    26678   ,
    26529   ,
    26383   ,
    26239   ,
    26097   ,
    25958   ,
    25821   ,
    25686   ,
    25554   ,
    25423   ,
    25294   ,
    25167   ,
    25042   ,
    24919   ,
    24798   ,
    24678   ,
    24561   ,
    24444   ,
    24330   ,
    24217   ,
    24106   ,
    23996   ,
    23888   ,
    23781   ,
    23675   ,
    23571   ,
    23468   ,
    23367   ,
    23267   ,
    23168   ,
    23070   ,
    22974   ,
    22879   ,
    22785   ,
    22692   ,
    22600   ,
    22510   ,
    22420   ,
    22332   ,
    22245   ,
    22158   ,
};
#elif (MODULATION_PERCENT == 97)
#define MODULATION_MAX      31783
#define START_INDEX         60
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32498   ,
    32236   ,
    31980   ,
    31730   ,
    31486   ,
    31247   ,
    31014   ,
    30786   ,
    30563   ,
    30344   ,
    30130   ,
    29921   ,
    29716   ,
    29515   ,
    29318   ,
    29125   ,
    28936   ,
    28751   ,
    28569   ,
    28390   ,
    28215   ,
    28042   ,
    27873   ,
    27707   ,
    27544   ,
    27384   ,
    27227   ,
    27072   ,
    26920   ,
    26770   ,
    26623   ,
    26478   ,
    26336   ,
    26196   ,
    26058   ,
    25922   ,
    25788   ,
    25657   ,
    25527   ,
    25400   ,
    25274   ,
    25150   ,
    25028   ,
    24907   ,
    24789   ,
    24672   ,
    24556   ,
    24443   ,
    24331   ,
    24220   ,
    24111   ,
    24003   ,
    23897   ,
    23792   ,
    23689   ,
    23586   ,
    23486   ,
    23386   ,
    23288   ,
    23191   ,
    23095   ,
    23000   ,
    22907   ,
    22814   ,
    22723   ,
    22633   ,
    22544   ,
    22456   ,
};
#elif (MODULATION_PERCENT == 98)
#define MODULATION_MAX      32111
#define START_INDEX         61
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32504   ,
    32247   ,
    31995   ,
    31750   ,
    31510   ,
    31276   ,
    31047   ,
    30822   ,
    30603   ,
    30388   ,
    30178   ,
    29972   ,
    29770   ,
    29572   ,
    29378   ,
    29188   ,
    29001   ,
    28818   ,
    28638   ,
    28462   ,
    28289   ,
    28119   ,
    27952   ,
    27788   ,
    27627   ,
    27468   ,
    27313   ,
    27160   ,
    27009   ,
    26861   ,
    26715   ,
    26572   ,
    26431   ,
    26292   ,
    26156   ,
    26021   ,
    25889   ,
    25758   ,
    25630   ,
    25503   ,
    25378   ,
    25255   ,
    25134   ,
    25015   ,
    24897   ,
    24781   ,
    24666   ,
    24554   ,
    24442   ,
    24332   ,
    24224   ,
    24117   ,
    24011   ,
    23907   ,
    23804   ,
    23703   ,
    23602   ,
    23503   ,
    23406   ,
    23309   ,
    23214   ,
    23120   ,
    23027   ,
    22935   ,
    22844   ,
    22754   ,
    22665   ,
};
#elif (MODULATION_PERCENT == 99)
#define MODULATION_MAX      32439
#define START_INDEX         62
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32509   ,
    32257   ,
    32010   ,
    31770   ,
    31534   ,
    31304   ,
    31079   ,
    30858   ,
    30642   ,
    30431   ,
    30224   ,
    30021   ,
    29822   ,
    29627   ,
    29436   ,
    29248   ,
    29064   ,
    28884   ,
    28707   ,
    28532   ,
    28362   ,
    28194   ,
    28029   ,
    27867   ,
    27707   ,
    27551   ,
    27397   ,
    27246   ,
    27097   ,
    26950   ,
    26806   ,
    26664   ,
    26524   ,
    26387   ,
    26252   ,
    26118   ,
    25987   ,
    25858   ,
    25730   ,
    25605   ,
    25481   ,
    25359   ,
    25239   ,
    25120   ,
    25003   ,
    24888   ,
    24775   ,
    24662   ,
    24552   ,
    24443   ,
    24335   ,
    24229   ,
    24124   ,
    24020   ,
    23918   ,
    23817   ,
    23717   ,
    23619   ,
    23522   ,
    23426   ,
    23331   ,
    23237   ,
    23145   ,
    23053   ,
    22963   ,
    22873   ,
};
#elif (MODULATION_PERCENT == 100)
#define MODULATION_MAX      32767
#define START_INDEX         63
static const uSHORT CircleLimitTable[(128 -START_INDEX)]=
{
    32514   ,
    32267   ,
    32025   ,
    31789   ,
    31557   ,
    31331   ,
    31110   ,
    30893   ,
    30681   ,
    30473   ,
    30269   ,
    30069   ,
    29873   ,
    29681   ,
    29493   ,
    29308   ,
    29126   ,
    28948   ,
    28773   ,
    28601   ,
    28433   ,
    28267   ,
    28104   ,
    27944   ,
    27786   ,
    27632   ,
    27479   ,
    27330   ,
    27182   ,
    27037   ,
    26895   ,
    26754   ,
    26616   ,
    26480   ,
    26346   ,
    26214   ,
    26084   ,
    25955   ,
    25829   ,
    25705   ,
    25582   ,
    25461   ,
    25342   ,
    25224   ,
    25108   ,
    24994   ,
    24881   ,
    24770   ,
    24660   ,
    24551   ,
    24444   ,
    24339   ,
    24234   ,
    24132   ,
    24030   ,
    23930   ,
    23831   ,
    23733   ,
    23636   ,
    23541   ,
    23446   ,
    23353   ,
    23261   ,
    23170   ,
    23080   ,
};
#endif
//
static const SHORT TanTable[10] = {8192,4836,2555,1297,651,326,163,81,41,20};
//
#define SHORT_MAX   ((SHORT) 32767)
#define SHORT_MIN   ((SHORT)-32768)
#define divSQRT_3   ((SHORT)0x49E6)      //1/sqrt(3)的Q15格式，1/sqrt(3) * 32767 = 0.57735 * 32767 = 18918 = 0x49E6
//-------------------------------------------------------//
//  -------------  Function declaration ---------
//-------------------------------------------------------//
void         InsertVector(void);
T_CurrComps  GetCurr_SingleShunt(SHORT,SHORT,LONG,uCHAR);
T_CurrComps  Clarke(T_CurrComps);
T_CurrComps  Park(T_CurrComps,T_TrigComps);
T_VoltComps  InvePark(T_VoltComps,T_TrigComps);
T_VoltComps  CircleLimit(T_VoltComps,uSHORT,uCHAR);
T_TrigComps  TrigFunc(SHORT);
T_SVPWMComps SVPWM_Ctrl(T_VoltComps,uLONG,uSHORT,uLONG,uCHAR);
//
void   MotorDigModel(T_CurrComps32 *,T_VoltComps,T_VoltComps32,LONG,LONG,SHORT,SHORT,SHORT,SHORT);
void   BangBangCtrl(LONG *,LONG *,T_CurrComps32,T_CurrComps,LONG,LONG);
void   LPF16(SHORT *,SHORT,SHORT);
void   LPF32(LONG *,LONG,SHORT);
void   LPF32_Double(T_VoltComps32 *,LONG,LONG,SHORT);
SHORT  CORDIC(T_VoltComps32);
void   SetLPFCoeff(SHORT *, uLONG,uCHAR,LONG);
void   AdapLPFCoef(SHORT *);
T_BOOL OpenLpToClosedLp(SHORT *,SHORT,SHORT);
//
#ifdef __cplusplus
}
#endif
//
#endif	//_FOC_CORE_SL_SGSN_M4A1_H

